package com.cookie.service.impl;

import com.cookie.entity.Note;
import com.cookie.mapper.NoteMapper;
import com.cookie.service.NoteService;
import com.cookie.utils.MyBatisConfig;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

/**
 * @author dyx
 * @description
 * @date 2024/12/26 08:18
 **/
public class NotesServiceImpl implements NoteService {
    SqlSessionFactory sqlSessionFactory = MyBatisConfig.CreateSqlSessionFactory();
    /**
     * 查询所有的notes
     * @return 返回一个包含所有notes的List
     */
    @Override
    public List<Note> queryAllNotes() {
        try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
            NoteMapper noteMapper = sqlSession.getMapper(NoteMapper.class);
            return noteMapper.selectAll();
        }
    }

    /**
     *
     * @param id 笔记ID 自动生成 // TODO ID生成可以做一个ID生成器，每次都不一样
     * @param title 笔记的标题
     * @param content 笔记的内容
     * @param author 笔记的作者  // TODO 自动识别作者是谁的功能待做
     * @param label 笔记的标签，可自定义，后面可以靠这个分类
     * @return 返回插入成功的结果，true成功，false失败
     */
    @Override
    public boolean addOneNote(String id, String title, String content, String author, String label) {
        try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
            NoteMapper noteMapper = sqlSession.getMapper(NoteMapper.class);
            // TODO author和id自动识别和生成
            return noteMapper.insertNote(id, title, content, author, label);
        }
    }
}
